<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>生命周期函数</title>
  </head>
  <body>
    <script src="https://unpkg.com/vue@next"></script>

    <div id="root">
        <div>{{message}}</div>
    </div>

    <script>
      //  生命周期函数 : 在某一时刻会自动执行的函数
      const app = Vue.createApp({
        data() {
          return {
            message: "hello world",
          };
        },

        // 在实例生成之前会自动执行的函数
        beforeCreate() {
          console.log("beforeCreate");
        },

        // 在实例生成之后会自动执行的函数
        created() {
          console.log("created");
        },
        
        // 在组件内容被渲染到页面之前会自动执行的函数
        beforeMount() {
          console.log(document.getElementById("root").innerHTML,"beforeMount");
        },

        // 在组件内容被渲染到页面之后会自动执行的函数
        mounted() {
          console.log(document.getElementById("root").innerHTML,"mounted");
        },

        // 当数据发生变化时会立即执行的函数
        beforeUpdate(){
            console.log(document.getElementById("root").innerHTML,"beforeUpdate");
        },
         // 当数据发生变化 页面重新渲染完成之后 会立即执行的函数
        updated(){
            console.log(document.getElementById("root").innerHTML,"updated");
        },

        // 当 Vue 应用失效时 自动执行的函数
        beforeUnmount(){
            console.log(document.getElementById("root").innerHTML,"beforeUnmount");
        },

        // 当 Vue 应用失效时 且DOM完全销毁之后 自动执行的函数
        unmounted(){
            console.log(document.getElementById("root").innerHTML,"unmounted");
        },
      

        //template: `<div>{{message}}</div>`,
      });

      //  vm代表的就是vue应用的根组件
      const vm = app.mount("#root");
    </script>
  </body>
</html>
